When IP addresses are dynamically set in each communication apparatus that carries out communication by way of an IP (Internet Protocol) network such as the Internet, the danger exists that the timing of IP address requests will cause duplicate IP addresses to be set by mistake. To prevent such problems, a client implements a process called DAD (Duplicate Address Detection) as disclosed in RFC 4862: IPv6 Stateless Address Auto-Configuration URL:http://www.ietf.org/rfc/rfc4862.txt before actually setting an address.
In the DAD process, the client first takes one of the invalid addresses that are recognized as not being set to any other communication apparatus on the network as a setting candidate tentative address as shown in FIG. 1.
As shown in FIG. 2, the client then transmits NS (Neighbor Solicitation) message M1 that inquires whether a valid address that has been set and that duplicates a tentative address (for example, “Address X”) exists in the network. If there is no reply from another communication apparatus indicating that a duplicate address exists within a predetermined time interval, the uniqueness of the tentative address is confirmed, and the client therefore sets the tentative address as a valid address in that client, as shown in FIG. 1. The dotted line in FIG. 2 indicates that there is no reply to the NS messages from each client.
As shown in FIG. 2, after a valid address has been set, the client is able to designate destinations and communicate with other clients that have set valid addresses. “NS(src=::)” in FIGS. 2-5 indicates an NS message for DAD, and “NS(src≠::)” indicates an NS message for resolving an L2 address. In FIGS. 2-5, normal arrows between nodes indicate transmission of NS messages for DAD processing, and blank arrows indicate the transmission of messages for resolving L2 addresses.
As shown in FIG. 3, a case is here considered in which client C1 attempts to acquire tentative address “X,” but a valid address that is the same as address “X” has already been set to client C2 in the network. In this case, client C2 returns NA (Neighbor Advertisement) message M3 indicating that a duplicate address exists in response to NS message M2 from client C1. Client C1, having received M3, cancels tentative address “X” and the DAD fails.
Alternatively, in another case as shown in FIG. 4, client C1 transmits NA message M4 for a DAD process regarding tentative address “X,” and following reception of M4, another client C3 at a delayed time carries out a DAD process to acquire the same valid address as tentative address “X.” Here, NS message M5 of later client C3 in some cases arrives at client C1 after the transmission of M4 by earlier client C1 but before the passage of the predetermined time interval that determines the lack of a reply. At such times, earlier client C1 that has received M5 determines that the DAD process has failed, while the later client C3 wins from behind and is able to set address “X” as a valid address to client C3 itself.
As explained with reference to FIG. 3 and FIG. 4, implementation of the DAD process prevents the setting of duplicate valid addresses on a network.
Nevertheless, the existence of low-performance nodes or nodes that have undergone protocol installation by various methods must be assumed on a network, and in duplicate verification, sufficient time is required to enable reply by any kind of node. In a typical communication environment that uses Ethernet, one second is assigned to this verification time. Accordingly, when a node is newly using an address, this address cannot be used without first waiting for the one-second duplicate verification. The one-second time interval required for the DAD process is a long time interval that cannot be ignored in a typical communication environment.
Alternatively, as shown in FIG. 5, after client C1 has transmitted NS message M6 and before client C3 receives M6, C3 may in some cases transmit later NS message M7. In this case, client C1 receives M7 within the predetermined time interval for determining the absence of duplication, the DAD process fails, and client C3 similarly receives M6 within the predetermined time interval, whereby both DAD processes fail. As a result, client C1 or C3 again implements DAD, expending more time.
This results in a time-consuming DAD, and a communication apparatus requires more time to set a valid address.
As disclosed in RFC 4429: Optimistic Duplicate Address Detection (DAD) for IPv6 URL:http://www.ietf.org/rfc/rfc4429.txt, there is a method for shortening the time until an address is set in which a communication apparatus carries out an optimistic DAD process. An optimistic DAD process is a method that takes advantage of the vastness of IP address space in IPv6 (Internet Protocol Version 6) and the extremely low possibility of conflicts. This method advances the process by eliminating the DAD process or by, while allowing the existence of the DAD process, assuming that conflicts will not occur. Then, if a conflict should subsequently be discovered, a node devises remedial measures for the process based on the assumption that the process was carried out prior to the time of the discovery.
Alternatively, as disclosed in JP-A-2007-166069, there is also a method for shortening the time until an address is set in which a DHCP server, when its own IP address is duplicated by a tentative address, changes its own IP address to an address that is outside the range of the pooled address space.